// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.geocities.com/kpdus/jad.html // Decompiler options: braces fieldsfirst space lnc package de.greenrobot.dao.query; import android.database.sqlite.SQLiteDatabase; import de.greenrobot.dao.AbstractDao; import de.greenrobot.dao.DaoException; import de.greenrobot.dao.InternalQueryDaoAccess; import java.util.List; // Referenced classes of package de.greenrobot.dao.query: // AbstractQuery, LazyList, CloseableListIterator public class Query extends AbstractQuery { private final int limitPosition; private final int offsetPosition; private final QueryData queryData; private Query(QueryData querydata, AbstractDao abstractdao, String s, String as[], int i, int j) { super(abstractdao, s, as); queryData = querydata; limitPosition = i; offsetPosition = j; } Query(QueryData querydata, AbstractDao abstractdao, String s, String as[], int i, int j, _cls1 _pcls1) { this(querydata, abstractdao, s, as, i, j); } static Query create(AbstractDao abstractdao, String s, Object aobj[], int i, int j) { return (Query)(new QueryData(abstractdao, s, toStringArray(aobj), i, j)).forCurrentThread(); } public static Query internalCreate(AbstractDao abstractdao, String s, Object aobj[]) { return create(abstractdao, s, aobj, -1, -1); } public Query forCurrentThread() { return (Query)queryData.forCurrentThread(this); } public List list() { checkThread(); android.database.Cursor cursor = dao.getDatabase().rawQuery(sql, parameters); return daoAccess.loadAllAndCloseCursor(cursor); } public CloseableListIterator listIterator() { return listLazyUncached().listIteratorAutoClose(); } public LazyList listLazy() { checkThread(); android.database.Cursor cursor = dao.getDatabase().rawQuery(sql, parameters); return new LazyList(daoAccess, cursor, true); } public LazyList listLazyUncached() { checkThread(); android.database.Cursor cursor = dao.getDatabase().rawQuery(sql, parameters); return new LazyList(daoAccess, cursor, false); } public void setLimit(int i) { checkThread(); if (limitPosition == -1) { throw new IllegalStateException("Limit must be set with QueryBuilder before it can be used here"); } else { parameters[limitPosition] = Integer.toString(i); return; } } public void setOffset(int i) { checkThread(); if (offsetPosition == -1) { throw new IllegalStateException("Offset must be set with QueryBuilder before it can be used here"); } else { parameters[offsetPosition] = Integer.toString(i); return; } } public void setParameter(int i, Object obj) { if (i >= 0 && (i == limitPosition || i == offsetPosition)) { throw new IllegalArgumentException((new StringBuilder()).append("Illegal parameter index: ").append(i).toString()); } else { super.setParameter(i, obj); return; } } public Object unique() { checkThread(); android.database.Cursor cursor = dao.getDatabase().rawQuery(sql, parameters); return daoAccess.loadUniqueAndCloseCursor(cursor); } public Object uniqueOrThrow() { Object obj = unique(); if (obj == null) { throw new DaoException("No entity found for query"); } else { return obj; } } private class QueryData extends AbstractQueryData { private final int limitPosition; private final int offsetPosition; protected volatile AbstractQuery createQuery() { return createQuery(); } protected Query createQuery() { return new Query(this, dao, sql, (String[])initialValues.clone(), limitPosition, offsetPosition, null); } QueryData(AbstractDao abstractdao, String s, String as[], int i, int j) { super(abstractdao, s, as); limitPosition = i; offsetPosition = j; } } }